时间最优功能介绍

修订日期 修订版本 修订内容 修订人
2025.05.12 V0.1 初始化文档 邓誉鑫

[TOC]

1. 时间最优功能简介

在机器人轨迹规划中,时间最优功能通过同步考虑运动学约束(速度/加速度)和动力学约束(关节力矩),实现运动时间的最小化。该功能特别适用于对节拍要求严苛的场景(如高速码垛、流水线分拣),可使机械臂在安全范围内以物理极限性能执行运动。

2. 用法介绍

struct MoveProperty
{
    bool                    time_optimal{false};                         // 时间最优标志,开启后会使参考轨迹同时满足运动学和动力学约束
    std::vector<double>     maxV;                                        // 最大运动速度
    std::vector<double>     maxA;                                        // 最大运动加速度

使用时间最优功能需要显式设置运动属性中的 time_optimal = true ,时间最优功能开启后,能够满足速度,加速度以及力矩限制之中的任意一种约束,比如设置加速度和力矩很大,速度很小,则受限于速度约束;设置速度和力矩很大,加速度很小,则受限于加速度约束,会满足三者中任意一个的最大值来执行动作

自动适配加速度:当用户将maxVmaxA设置得很大,系统会受限于电机的最大扭矩,从而自动调整加速度和速度,以达到时间最优。

参数类型 设置策略 示例值(6轴机器人)
maxV 设置值 >= 理论最大极限值(当期望系统自动适配时) [6.0, 6.0, 6.0, 6.0, 6.0, 6.0]
maxA 设置值 >= 理论最大极限值(当期望系统自动适配时) [50.0, 50.0, 50.0, 50.0, 50.0, 50.0]

3.使用示例

Setup("aubo_i5");                
std::vector<interface::RLJntArray> joints = { {0.406,-0.148,1.957,0.535,1.570,0.313},                                                  {0.695,-0.258,1.094,0.244,1.567,-0.223} };
initiatePlanner(robot, joints[0], t_w);
interface::PathProperty path_property;
interface::MoveProperty mAttr;
path_property.describe_space = interface::DescribeSpace::JOINT;
path_property.cur_prop.type  = interface::CurveType::LINE;
interface::PathPoint point   = generatePathPoint(interface::DescribeSpace::JOINT, 1, joints[1], {}, t_w);

mAttr.time_optimal   = true;                                    // 开启时间最优标志
mAttr.maxV             = {10.0, 10.0, 10.0, 10.0, 10.0, 10.0};   // 设置较大的关节速度限制
mAttr.maxA             = {50.0, 50.0, 50.0, 50.0, 50.0, 50.0};   // 设置较大的关节加速度限制
robot->tpAddPositionLine(point, path_property, mAttr);         // 添加moveJoint

注意事项

  • 时间最优功能适用于确定路径的场景,如码垛,分拣等,开启时间最优功能会默认关闭动态交融,摆动以及moveP等功能

results matching ""

    No results matching ""